package com.example.util;

/**
 * @author 朽
 */

import java.util.Random;

/**
 * 随机生成验证码工具类
 */
public class ValidateCodeUtils {
    /**
     * 随机生成验证码，并记录生成时间戳
     * @param length 长度为4位或者6位
     * @return 包含验证码和生成时间戳的数组，索引 0 是验证码，索引 1 是生成时间戳
     */
    public static Object[] generateValidateCodeWithTimestamp(int length){
        if(length != 4 && length != 6) {
            throw new IllegalArgumentException("验证码长度必须为4或6");
        }

        Integer code;
        long timestamp = System.currentTimeMillis();

        // 生成验证码
        if(length == 4){
            code = new Random().nextInt(9000) + 1000;
        } else { // length == 6
            code = new Random().nextInt(900000) + 100000;
        }

        return new Object[]{code, timestamp};
    }

    /**
     * 随机生成指定长度字符串验证码
     * @param length 长度
     * @return
     */
    public static String generateValidateCode4String(int length){
        Random rdm = new Random();
        String hash1 = Integer.toHexString(rdm.nextInt());
        String capstr = hash1.substring(0, length);
        return capstr;
    }
}
